home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- import wx
- from gui.textutil import GetTextExtent, default_font
- from util import do, try_this
- from gui import skin
- from cgui import SplitImage4
- from gui.windowfx import ApplySmokeAndMirrors
- from gui.skin.skinobjects import SkinColor
- from gui.uberwidgets import UberWidget
-
- class UberProgressBar(wx.Gauge, UberWidget):
-
- def __init__(self, parent, id = -1, range = 100, skinkey = None, showlabel = False, style = wx.GA_SMOOTH, pos = wx.DefaultPosition, size = wx.DefaultSize):
- wx.Gauge.__init__(self, parent, -1, range, pos, size, style)
- self.style = style
- self.range = range
- self.value = 0
- self.showlabel = showlabel
- events = [
- (wx.EVT_PAINT, self.OnPaint),
- (wx.EVT_ERASE_BACKGROUND, self.OnBGPaint),
- (wx.EVT_SIZE, self.OnSize)]
- (do,)((lambda .0: for event, method in .0:
- self.Bind(event, method))(events))
- self.SetSkinKey(skinkey, True)
- self.Calcumalate()
-
-
- def UpdateSkin(self):
- key = self.skinkey
-
- s = lambda k, default = (sentinel,): skin.get(key + '.' + k, default)
- mode = (try_this,)((lambda : str(s('mode', ''))), '')
- if key and mode.lower() != 'native':
- self.native = False
- self.repeat = (try_this,)((lambda : str(s('style', '')).lower()), '') == 'repeat'
- self.padding = s('padding', 0)
- self.Font = s('font', (lambda : default_font()))
- self.bg = s('backgrounds.normal', None)
- self.fg = s('backgrounds.fill', (lambda : SkinColor(wx.BLUE)))
- self.normalfc = s('fontcolors.normal', wx.BLACK)
- self.fillfc = s('fontcolors.fill', wx.WHITE)
- else:
- self.native = True
- self.OnSize()
-
-
- def OnSize(self, event = None):
- if not (self.native) and isinstance(self.bg, SplitImage4):
- ApplySmokeAndMirrors(self, self.bg.GetBitmap(self.Size))
- else:
- ApplySmokeAndMirrors(self)
-
-
- def OnBGPaint(self, event):
- if self.native:
- event.Skip()
-
-
-
- def OnPaint(self, event):
- if self.native:
- event.Skip()
- return None
-
- dc = wx.BufferedPaintDC(self)
- rect = wx.RectS(self.Size)
- if self.bg:
- self.bg.Draw(dc, rect)
-
- rect.width = int((float(self.value) / float(self.range)) * self.Size.x)
- if self.repeat:
- curser = wx.Point(self.padding, 0)
- while curser.x < self.fill:
- self.fg.Draw(dc, wx.RectPS(curser, (self.fg.width, rect.height)))
- curser.x += self.fg.width + self.padding
- continue
- curser
- else:
- self.fg.Draw(dc, wx.RectS((self.fill, rect.height)))
-
-
- def Calcumalate(self):
- if self.native:
- return None
-
- self.fill = self.Size.width * (float(self.value) / float(self.range))
- self.Refresh()
-
-
- def SetRange(self, range):
- self.range = range
- wx.Gauge.SetRange(self, range)
- self.Calcumalate()
-
-
- def SetValue(self, value):
- self.value = value
- wx.Gauge.SetValue(self, value)
- self.Calcumalate()
-
-
- def GetRange(self):
- return self.range
-
-
- def GetValue(self):
- return self.value
-
-
-